﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Navigation;
using Gica.Clases;

namespace Gica
{
    public partial class ABMProductor : Page
    {
        private string strModo;
        private string m_strCodigo;

        public ABMProductor()
        {
            InitializeComponent();
            cnvProductor.Visibility = Visibility.Collapsed;
        }

        // Se ejecuta cuando el usuario navega a esta página.
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            ClsComboBox objTipoDocumento = new ClsComboBox();
            ClsComboBox objPais = new ClsComboBox();
            ClsComboBox objEstadoProductor = new ClsComboBox();
            objTipoDocumento.ComboboxLlenarTipoDocumento(cmbTipoDocumento);
            objPais.ComboboxLlenarPais(cmbPais);
            objEstadoProductor.ComboboxLlenarEstadoProductor(cmbEstado);
        }

        private void cmbPais_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ClsComboBox objProvincia = new ClsComboBox();
            objProvincia.ComboboxLlenarProvincia(cmbProvincia, int.Parse(cmbPais.SelectedValue.ToString()));
        }

        private void cmbProvincia_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ClsComboBox objLocalidad = new ClsComboBox();
            if (cmbProvincia.SelectedValue != null)
            {
                objLocalidad.ComboboxLlenarLocalidad(cmbLocalidad, int.Parse(cmbProvincia.SelectedValue.ToString()));
            }
            else
            {
                objLocalidad.ComboboxLlenarLocalidad(cmbLocalidad, 0);
            }

        }

        private void btnBuscar_Click(object sender, RoutedEventArgs e)
        {
            Traer();
        }

        private void WsActividadClient_ActividadTraerTodosCompletedEventArgs(object sender, RefWsActividadTraerTodos.TraerTodosCompletedEventArgs e)
        {
            dgrActividad.ItemsSource = e.Result;
        }

        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            btnBuscar_Click(null, null);
        }

        private void btnAgregar_Click(object sender, RoutedEventArgs e)
        {
            Deshabilitar();
            strModo = "Agregar";
        }

        private void btnAceptar_Click(object sender, RoutedEventArgs e)
        {
            Habilitar();
            if (strModo == "Agregar")
            {
                AgregarActividad();
            }
            else
            {
                ModificarActividad();
            }
            btnBuscar_Click(sender, e);

        }

        private void Deshabilitar()
        {
            cnvProductor.Visibility = Visibility.Visible;
            btnModificar.IsEnabled = false;
            btnQuitar.IsEnabled = false;
            btnAgregar.IsEnabled = false;
            btnBuscar.IsEnabled = false;

        }

        private void Habilitar()
        {
            btnModificar.IsEnabled = true;
            btnQuitar.IsEnabled = true;
            btnBuscar.IsEnabled = true;
            btnAgregar.IsEnabled = true;
            txtNombreBuscar.IsEnabled = true;
            cnvProductor.Visibility = Visibility.Collapsed;
        }

        private void AgregarActividad()
        {
            RefWsActividadInsertar.WsActividadInsertarClient objRf = new RefWsActividadInsertar.WsActividadInsertarClient();
            objRf.InsertarAsync(txtNombre.Text, txtDescripcion.Text);
        }

        private void ModificarActividad()
        {
            RefWsActividadModificar.WsActividadModificarClient objRf = new RefWsActividadModificar.WsActividadModificarClient();
            objRf.ModificarAsync(int.Parse(m_strCodigo), txtNombre.Text, txtDescripcion.Text);
        }

        private void EliminarActividad()
        {
            RefWsActividadEliminar.WsActividadEliminarClient objRf = new RefWsActividadEliminar.WsActividadEliminarClient();
            objRf.EliminarAsync(int.Parse(m_strCodigo));
        }

        private void btnModificar_Click(object sender, RoutedEventArgs e)
        {
            if (m_strCodigo != null)
            {
                Deshabilitar();
                strModo = "Modificar";
            }
        }

        private void dgrActividad_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (dgrActividad.SelectedItem != null)
            {
                m_strCodigo = ((TextBlock)dgrActividad.Columns[0].GetCellContent(dgrActividad.SelectedItem)).Text;
                txtNombre.Text = ((TextBlock)dgrActividad.Columns[1].GetCellContent(dgrActividad.SelectedItem)).Text;
                txtDescripcion.Text = ((TextBlock)dgrActividad.Columns[2].GetCellContent(dgrActividad.SelectedItem)).Text;
            }
        }

        private void btnQuitar_Click(object sender, RoutedEventArgs e)
        {
            if (dgrActividad.SelectedItem != null)
            {
                m_strCodigo = ((TextBlock)dgrActividad.Columns[0].GetCellContent(dgrActividad.SelectedItem)).Text;
                EliminarActividad();
                Traer();
            }
        }

        private void btnCancelar_Click(object sender, RoutedEventArgs e)
        {
            Habilitar();
        }

        private void TraerTodos()
        {
            btnBuscar_Click(null, null);
        }

        private void Traer()
        {
            RefWsActividadTraerTodos.WsActividadTraerTodosClient objRf = new RefWsActividadTraerTodos.WsActividadTraerTodosClient();
            objRf.TraerTodosCompleted += new EventHandler<RefWsActividadTraerTodos.TraerTodosCompletedEventArgs>(WsActividadClient_ActividadTraerTodosCompletedEventArgs);
            objRf.TraerTodosAsync(txtNombreBuscar.Text);
        }


    }
}
